package cn.yj.core.business.service.iservice;

import cn.yj.annotation.pagehelper.page.Page;
import cn.yj.cgs.dba.entity.Article;
import cn.yj.cgs.dba.entity.vo.ArticleFormVo;
import cn.yj.cgs.dba.entity.vo.ArticleVo;
import cn.yj.common.baseDao.MpIService;
import cn.yj.entity.R;

import java.util.Map;

/**
 * @author 永健
 * @since 2021-04-29 13:39
 */
public interface IArticleService extends MpIService<Article> {


    Page<ArticleVo> listPage(Map<String, Object> params, Page<ArticleVo> page);

    /**
     * 发布文章
     *
     * @param article 文章
     */
    R pushArticle(ArticleFormVo article);


    Article selectByNoForUpdate(String articleNo);

    /**
     * 修改文章
     *
     * @param article 文章
     */
    boolean updateArticleByNo(Article article);

    /**
     * 删除文章
     *
     * @param articleNo 文章编号
     */
    boolean deleteByNo(String articleNo);

    /**
     * 点赞 👍
     *
     * @param userCode  用户编码
     * @param articleNo 文章编号
     */
    boolean agree(String userCode, String articleNo);

    /**
     * 流量量 +1
     *
     * @param userCode  用户编码
     * @param articleNo 文章编号
     */
    boolean view(String userCode, String articleNo);

    Page<ArticleVo> myArticles(Map<String, Object> params, Page<ArticleVo> create_time);

    boolean deleteArticleImg(Integer imgId);
}
